perm filename SUBR.F4[2,LCS]1 blob
sn#153764 filedate 1975-04-04 generic text, type T, neo UTF8
00100 C***** THIS ROUTINE DIVIDES OCTAVE INTO ANY NUMBER OF EQUAL PARTS
00200
00300 SUBROUTINE SUBR
00400 COMMON /INS/ INST(27),BG(60)
00500 COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
00600 C INST=INSTRUMENT NAME, BG=BEGIN TIME OF EACH INST.
00700 C INUM=INST# IPAR=PARAM# BT=BASIC TIME P1 WHEN SUBROUTINE IS
00800 C CALLED, IF IREST IS <0, THAT NOTE WILL BE A REST.
00900 C NOTE #S IN SUBROUTINE: (1-84) C4=37 FS4=43 C5=49 F1=86
01000 C F15=100 (NO F16!)
01100 C DUR=FINAL DURATION OF EACH INST. IF DUR IS IN TERMS OF A
01200 C NUMBER OF NOTES(NOT TIME) THE DUR NUMBER WILL BE
01300 C 10000+THE NUMBER OF NOTES.
01400
01500
01600 C CALL SUBROUTINE FROM P12. P3 CAN BE NOTES OR NUMBS.
01700 I=P(3)
01800 X=I
01900 C THIS GETS RID OF TRAILING DECIMALS IF RAND SELECTION!
02000 IF(PL(3).EQ.1)GO TO 1
02100
02200 X=30.868*2**(X/12)
02300 C X=FREQ. IN HZ. BASED ON NOTE NUM. IN P3.
02400
02500 PL(3)=1.
02600 C THIS CAUSES FREQ. NUM TO PRINT INSTEAD OF LITERAL CHARACTERS.
02700
02800 1 P(3)=X*2**(P(11)/P(12))
02900 C P12=# OF DIVISIONS OF THE OCTAVE. P11=CHROMATIC STEP IN THAT DIV.
03000 RETURN
03100 END
03200
03300 C STEPS ; TYPICAL INPUT FOR MICROTONE SUBROUTINE.
03400 C CLAR /P2 .3/P3 A3/P4 1000;
03500 C P5 F1/P7 F4/P10 1;
03600 C P11 NUM/0/1/2/3/4/5/6/7/8/9/FINE*; 9 STEPS UP AN OCTAVE.
03700 C P12 9 SUBR/END; OCTAVE IS DIVIDED INTO 9 PARTS.